﻿/*+========================================================
File:		RunningMan.h
Sumary:	Định nghĩa lớp CRunningMan
========================================================+*/

#pragma once
#include "Gun.h"
#include "Bill.h"
#include <time.h>


//Vận tốc của enemy
#define ENEMY_VX		-100.0f
#define ENEMY_VY		200.0f

//Các trạng thái của Enemy
#define ENEMY_RUN		0
#define ENEMY_JUMP		1
#define ENEMY_DIE		2
#define ENEMY_FIRE		3


/*C+==================================================================
Class:    CRunningMan

Summary:  Lớp CRunningMan là lớp enemy chạy
==================================================================-C*/

class CRunningMan : public CMoveableObject
{
private:
	//Biến kiểm tra hướng của enemy
	bool m_bIsRight;
	//Biến kiểm tra enemy có đang nhảy không
	bool m_bIsJumping;
	//Trạng thái của enemy
	int m_nStatus;
	//Biến kiểm tra enemy có đang bắn không
	bool m_bIsFiring;
	//Biến súng cho emeny
	CGun* m_pGun;
	//Thời gian ememy chết
	float m_fTimeDie;
	//Các biến Sprite của ENEMY
	CSprite* m_aSprite[3];
	//Cờ kiểm tra enemy có rơi xuống nước không
	bool m_bIsFallInWater;
	//Số lần chạm với nước
	int m_nCount;
	//Vị trí khởi tạo của enemy
	D3DXVECTOR2 m_posInit;
	//Box để test
	CTexture* m_pTextureBox;
	//Thời gian bắn
	float timeFire;
	//Vận tốc hiện tại của enemy chạy
	D3DXVECTOR2 m_curVel;
	//Biến cờ kiểm tra enemy đã bắn
	bool m_bIsFired;
	//Cờ hướng hiện tại
	bool m_bCurRight;
public:
	CRunningMan(D3DXVECTOR2 pos, int id, int typeId, bool direction = false);
	~CRunningMan();
	void Update(float timeFrame);
	void UpdateCollision(vector<CGameObject*> vecGameObjs, float timeFrame);
	void Draw();
	void Explode();
	void Reset(D3DXVECTOR2 pos, bool direction);
	float GetTimeDie()
	{
		return m_fTimeDie;
	}
	void Fire();
};